Chomu's Blog.

>

Posts

GitHub

[포스코x코딩온] 웹 풀스택 과정 7기 5주차 화요일 회고

목차

DB

SQL문

DDL

DDL(Data Definition Language)은 데이터베이스를 정의할 때 사용하는 구문이다.
DDL은 데이터베이스, 테이블, 뷰, 인덱스 등을 생성, 변경, 삭제하는데 사용한다.

DML

DML(Data Manipulation Language)은 데이터를 조작하는데 사용하는 구문이다.
DML은 데이터를 검색, 삽입, 수정, 삭제하는데 사용한다.

MySQL

MySQL 설치 및 실행

brew install mysql // 설치
mysql.server start // 서버 실행
mysql_secure_installation // 보안 설정

MySQL 설치시 오류

brew로 MySQL 설치 후 서버를 열려고 하면 계속 오류가 났다.
ERROR! The server quit without updating PID file (/opt/homebrew/var/mysql/<컴퓨터 이름>.local.pid). 라느니 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) 라느니 계속 검색 결과를 따라해도 오류에 오류만 나올 뿐이었다.
삭제 후 재설치를 해도 똑같은 오류를 뱉었다.
그러다 문득 이전에 mariaDB를 설치를 했던 적이 있는데 그 때 설정해둔게 오류가 생긴게 아닐까라는 의심이 들었다.
brew uninstall mysql로 삭제 후 /opt/homebrew/var 디렉토리를 확인 했더니 mysql 디렉토리가 남아있었다.
rm -rf /opt/homebrew/var/mysql로 삭제 후 다시 설치를 하니 정상적으로 작동했다.
이걸로 두 시간을 날렸다. 아까운 내 시간...😵‍💫

MySQL VSCode 연동

VSCode 확장 탭에서 MySQL을 검색해 가장 먼저 나오는 MySQL를 설치했다.
실행 했더니 Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client 라는 에러가 떴다.
아마 인증과정에서 일어난 문제 같다.
에러문을 검색해보니 비슷한 문제를 겪은 글이 있었다.
답변에 나온 해결책은 다음과 같았다.

ALTER USER '<DB 사용자명>'@'<호스트 이름>' IDENTIFIED WITH mysql_native_password BY '<DB 사용자 비밀번호>';

터미넗에서 MySQL을 실행한 뒤 해당 명령문을 입력하니 깔끔하게 실행되었다.
해당 SQL문의 IDENTIFIED WITH mysql_native_password BY 부분을 검색해서 나온 글을 보니 인증 과정 문제가 맞는 것 같다.

외래키

제약조건